import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * 一个类定义返回结果对象
 *
 */
@Data
@ApiModel(value = "全局返回统一结果")
public class Result {
    @ApiModelProperty(value="是否成功")
    private boolean success;
    @ApiModelProperty(value="返回码")
    private Integer code;
    @ApiModelProperty(value="返回消息")
    private String message;
    @ApiModelProperty(value="返回数据")
    private Map<String, Object> data = new HashMap<String, Object>();

    private Result(){

    }
    public static Result ok(){
        Result r=new Result();
        r.setSuccess(true);
        r.setCode(ResultCode.ok);
        r.setMessage("成功");
        return r;
    }
    public static Result error(){
        Result r=new Result();
        r.setSuccess(false);
        r.setCode(ResultCode.error);
        r.setMessage("失败");
        return r;
    }
    public  Result message(String message){
            this.setMessage(message);
            return this;
    }
    public Result code(Integer code){
            this.setCode(code);
            return this;
    }
    public Result data(String key,Object value){
        this.data.put(key,value);
        return this;
    }
    public Result data(Map<String,Object> data){
       this.setData(data);
       return this;
    }
}
